package elektra.plugin.environment;

import com.google.inject.AbstractModule;
import com.google.inject.matcher.Matchers;

import elektra.plugin.core.PluginModule;

public class BaseModule extends PluginModule {

	@Override
	protected void configure() {
		
		bind(IPluginEnvironment.class).to(PluginEnvironment.class);
        bind(IPluginContext.class).to(BasePluginContext.class);	
        bind(PluginModule.class).to(BaseModule.class);
        AspectLogger logger= new AspectLogger();
        requestInjection(logger);
		bindInterceptor(Matchers.any(), Matchers.annotatedWith(Log.class), 
        logger);
	}

}
